package com.ktwlsoft.archivemanage.domain.business.repositoryService;

import com.ktwlsoft.archivemanage.domain.dao.entity.InforConst;
import com.ktwlsoft.archivemanage.domain.dao.repository.InforConstMapper;
import com.ktwlsoft.archivemanage.payload.Result;
import com.ktwlsoft.archivemanage.payload.ResultType;
import com.ktwlsoft.archivemanage.payload.inforConst.InforConstAddRequest;
import com.ktwlsoft.archivemanage.payload.inforConst.InforConstUpdateRequest;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @description     信息化建设数据层服务类
 * @author          chenkun
 * @version         1.0
 * @date            2019-10-28
 */
@Service
public class InforConstRepositoryService {

    @Autowired
    private InforConstMapper inforConstMapper;

    /**
     * @description         查询信息化建设条目
     * @param               unitId 立档单位id
     * @return              Result
     */
    public Result findInforConstItem(Long unitId){
        if(unitId == null){
            return Result.body(null, ResultType.BUSINESS_ERROR).withMessage("立档单位信息不存在");
        }
        return Result.body(inforConstMapper.findInforConstItem(unitId), ResultType.BUSINESS_SUCCESS);
    }

    /**
     * @description         新增信息化建设条目
     * @param               request 信息化建设数据
     * @return              Result
     */
    public Result addInforConstItem(InforConstAddRequest request){
//        Long unitId=request.getUnitId();
//        if(unitId == null){
//            return Result.body(null, ResultType.BUSINESS_ERROR).withMessage("立档单位信息不存在");
//        }
        InforConst inforConst=new InforConst();
        BeanUtils.copyProperties(request,inforConst);
        return Result.body(inforConstMapper.addInforConstItem(inforConst), ResultType.BUSINESS_SUCCESS).withMessage("新增信息化建设成功");
    }

    /**
     * @description         新增信息化建设条目
     * @param               inforConst 信息化建设数据
     * @return              Result
     */
    public Result addInforConstItem(InforConst inforConst){
        try{
            inforConstMapper.addInforConstItem(inforConst);
        }catch (Exception e){
            e.printStackTrace();
            return Result.body(null,ResultType.SAVING_ERROR).withMessage(e.getMessage());
        }
        return Result.body(inforConst.getId(), ResultType.BUSINESS_SUCCESS).withMessage("新增信息化建设成功");
    }

    /**
     * @description         更新信息化建设条目
     * @param               request 信息化建设数据
     * @return              Result
     */
    public Result updateInforConstItem(InforConstUpdateRequest request){
//        Long unitId=request.getUnitId();
        InforConst inforConst=new InforConst();
        BeanUtils.copyProperties(request,inforConst);
//        if(unitId == null){
//            return Result.body(null, ResultType.BUSINESS_ERROR).withMessage("立档单位信息不存在");
//        }
        try {
            inforConstMapper.updateInforConstItem(inforConst);
        }catch (Exception e){
            e.printStackTrace();
            Result.body(null,ResultType.UPDATE_ERROR).withMessage(e.getMessage());
        }
        return Result.body(inforConst.getId(), ResultType.BUSINESS_SUCCESS).withMessage("更新信息化建设成功");
    }

    /**
     * @description         更新信息化建设条目
     * @param               inforConst 信息化建设数据
     * @return              Result
     */
    public Result updateInforConstItem(InforConst inforConst){
        try {
            inforConstMapper.updateInforConstItem(inforConst);
        }catch (Exception e){
            e.printStackTrace();
            Result.body(null,ResultType.UPDATE_ERROR).withMessage(e.getMessage());
        }
        return Result.body(inforConst.getId(), ResultType.BUSINESS_SUCCESS).withMessage("更新信息化建设成功");
    }

    /**
     * @description         删除信息化建设条目
     * @param               unitId 立档单位id
     * @return              int
     */
    public int deleteInforConstItem(Long unitId){
        return inforConstMapper.deleteInforConstItem(unitId);
    }
}
